Digital encoding of APL symbols
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
top
The programming language APL uses a number of symbols, rather than words from natural language, to identify operations, similarly to mathematical symbols. Prior to the wide adoption of Unicode, a number of special-purpose EBCDIC and non-EBCDIC code pages were used to represent the symbols required for writing APL.
Contents
โข Character sets
โข Unicode
โข Keyboard layout
โข See also
โข Footnotes
โข References
โข External links
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Character sets
Due to its origins on IBM Selectric-based teleprinters, APL symbols have traditionally been represented on the wire using a unique, non-standard character set. In the 1960s and 1970s, few terminal devices existed which could reproduce them, the most popular ones being the IBM 2741 and IBM 1050 fitted with a specific APL print head. Over time, with the universal use of high-quality graphic display, printing devices and Unicode support, the APL character font problem has largely been eliminated.
Character repertoire
| GCGID | IBM name | Unicode |
|---|---|---|
| SL010000 | Up Stile (APL) | U+2308 โ LEFT CEILING |
| SL020000 | Down Stile (APL) | U+230A โ LEFT FLOOR |
| SL030000 | Del (APL) | U+2207 โ NABLA |
| SL040000 | Del Tilde (APL) | U+236B โซ APL FUNCTIONAL SYMBOL DEL TILDE |
| SL050000 | Del Stile (APL) | U+2352 โ APL FUNCTIONAL SYMBOL DEL STILE |
| SL060000 | Delta (APL) | U+2206 โ INCREMENT |
| SL070000 | Delta Stile (APL) | U+234B โ APL FUNCTIONAL SYMBOL DELTA STโฆ |
| SL080000 | Circle (APL) | U+25CB โ WHITE CIRCLE |
| SL090000 | Circle Stile (APL) | U+233D โฝ APL FUNCTIONAL SYMBOL CIRCLE Sโฆ |
| SL100000 | Circle Slope (APL) | U+2349 โ APL FUNCTIONAL SYMBOL CIRCLE Bโฆ |
| SL110000 | Circle Star (APL) | U+235F โ APL FUNCTIONAL SYMBOL CIRCLE Sโฆ |
| SL120000 | Circle Bar | U+2296 โ CIRCLED MINUS |
| SL130000 | Quad Quote (APL) | U+235E โ APL FUNCTIONAL SYMBOL QUOTE QUโฆ |
| SL140000 | Quad Divide (APL) | U+2339 โน APL FUNCTIONAL SYMBOL QUAD DIVโฆ |
| SL150000 | Slash Bar (APL) | U+233F โฟ APL FUNCTIONAL SYMBOL SLASH BAR |
| SL160000 | Slope Bar (APL) | U+2340 โ APL FUNCTIONAL SYMBOL BACKSLASโฆ |
| SL170000 | Up Caret Tilde (APL) | U+2372 โฒ APL FUNCTIONAL SYMBOL UP CARETโฆ |
| SL180000 | Down Caret Tilde (APL) | U+2371 โฑ APL FUNCTIONAL SYMBOL DOWN CARโฆ |
| SL190000 | Down Tack Jot (APL) | U+234E โ APL FUNCTIONAL SYMBOL DOWN TACโฆ |
| SL200000 | Up Tack Jot (APL) | U+2355 โ APL FUNCTIONAL SYMBOL UP TACKโฆ |
| SL210000 | Up Shoe Null (APL) | U+235D โ APL FUNCTIONAL SYMBOL UP SHOEโฆ |
| SL220000 | Up Tack (APL) | U+22A4 โค DOWN TACK |
| SL230000 | Down Tack (APL) | U+22A5 โฅ UP TACK |
| SL240000 | Down Tack Up Tack (APL) | U+2336 โถ APL FUNCTIONAL SYMBOL I-BEAM |
| SL250000 | Jot (APL) | U+2218 โ RING OPERATOR |
| SL260000 | Left Bracket Right Bracket (APL) | U+2337 โท APL FUNCTIONAL SYMBOL SQUISH Qโฆ |
| SL270000 | Quad Jot (APL) | U+233B โป APL FUNCTIONAL SYMBOL QUAD JOT |
| SL280000 | Quad Slope (APL) | U+2342 โ APL FUNCTIONAL SYMBOL QUAD BACโฆ |
| SL290000 | Ampersand Underbar | |
| SL300000 | Equal Underbar (APL) | U+2261 โก IDENTICAL TO |
| SL310000 | OUT Symbol (APL) | none |
| SL320000 | Diaeresis Dot (APL) | U+2235 โต BECAUSE |
| SL330000 | Delta Underbar (APL) | U+2359 โ APL FUNCTIONAL SYMBOL DELTA UNโฆ |
| SL340000 | Left Tack (APL) | U+22A2 โข RIGHT TACK |
| SL350000 | Right Tack (APL) | U+22A3 โฃ LEFT TACK |
| SL360000 | Quad (APL) | U+2395 โ APL FUNCTIONAL SYMBOL QUAD |
| SL370000 | Less Greater (APL) | U+22C4 โ DIAMOND OPERATOR |
| SL380000 | Stile (APL) | U+2223 โฃ DIVIDES |
| SL400000 | Up Shoe (APL) | U+2229 โฉ INTERSECTION |
| SL410000 | Down Shoe (APL) | U+222A โช UNION |
| SL420000 | Left Shoe (APL) | U+2282 โ SUBSET OF |
| SL430000 | Right Shoe (APL) | U+2283 โ SUPERSET OF |
| SL440000 | Underbar (APL) | U+005F _ LOW LINE |
| SL450000 | Diaeresis (APL) | U+00A8 ยจ DIAERESIS |
| SL460000 | Tilde (APL) | U+223C โผ TILDE OPERATOR |
| SL480000 | Circle Plus | U+2295 โ CIRCLED PLUS |
| SL490000 | Circle x | U+2297 โ CIRCLED TIMES |
| SL500000 | Down Caret (APL) | U+2228 โจ LOGICAL OR |
| SL510000 | Up Caret (APL) | U+2227 โง LOGICAL AND |
| SL520000 | Less (APL) | U+003C < LESS-THAN SIGN |
| SL530000 | Greater (APL) | U+003E > GREATER-THAN SIGN |
| SL540000 | Divide (APL) | U+00F7 รท DIVISION SIGN |
| SL550000 | Times (APL) | U+00D7 ร MULTIPLICATION SIGN |
| SL560000 | Not Greater (APL) | U+2264 โค LESS-THAN OR EQUAL TO |
| SL570000 | Not Less (APL) | U+2265 โฅ GREATER-THAN OR EQUAL TO |
| SL580000 | Quote Dot (APL) | U+0021 ! EXCLAMATION MARK |
| SL590000 | Left Arrow (APL) | U+2190 โ LEFTWARDS ARROW |
| SL600000 | Right Arrow (APL) | U+2192 โ RIGHTWARDS ARROW |
| SL610000 | Up Arrow (APL) | U+2191 โ UPWARDS ARROW |
| SL620000 | Down Arrow (APL) | U+2193 โ DOWNWARDS ARROW |
| SL630000 | Overbar (APL) | U+203E โพ OVERLINE |
| SL640000 | Slope (APL) | U+005C \ REVERSE SOLIDUS |
| SL650000 | Star (APL) | U+22C6 โ STAR OPERATOR |
| SL660000 | Quote (APL) | U+0027 ' APOSTROPHE |
| SL670000 | Left Parenthesis (APL) | U+0028 ( LEFT PARENTHESIS |
| SL680000 | Right Parenthesis (APL) | U+0029 ) RIGHT PARENTHESIS |
| SL690000 | Bar (APL) | U+002D - HYPHEN-MINUS |
| SL700000 | Query (APL) | U+003F ? QUESTION MARK |
| SL710000 | Alpha (APL) | U+237A โบ APL FUNCTIONAL SYMBOL ALPHA |
| SL720000 | Epsilon (APL) | U+220A โ SMALL ELEMENT OF |
| SL730000 | Iota (APL) | U+2373 โณ APL FUNCTIONAL SYMBOL IOTA |
| SL740000 | Rho (APL) | U+2374 โด APL FUNCTIONAL SYMBOL RHO |
| SL750000 | Omega (APL) | U+2375 โต APL FUNCTIONAL SYMBOL OMEGA |
| SL760000 | Slash (APL) | U+002F / SOLIDUS |
| SL770000 | Left Bracket (APL) | U+005B [ LEFT SQUARE BRACKET |
| SL780000 | Right Bracket (APL) | U+005D ] RIGHT SQUARE BRACKET |
| SL790000 | Plus (APL) | U+002B + PLUS SIGN |
| SL800000 | Semicolon (APL) | U+003B ; SEMICOLON |
| SL810000 | Equal (APL) | U+003D = EQUALS SIGN |
| SL820000 | Not Equal (APL) | U+2260 โ NOT EQUAL TO |
| SL830000 | Colon (APL) | U+003A : COLON |
| SL840000 | Dot (APL) | U+002E . FULL STOP |
| SL850000 | Comma (APL) | U+002C , COMMA |
| SL860000 | Iota Underbar (APL) | U+2378 โธ APL FUNCTIONAL SYMBOL IOTA UNDโฆ |
| SL870000 | Epsilon Underbar (APL) | U+2377 โท APL FUNCTIONAL SYMBOL EPSILONโฆ |
| GCGID | Notes and other mappings |
|---|---|
| SL080000 | This is SM750000 in a non-APL context,โฆ |
| SL290000 | Not used in any documented code page. Cโฆ |
| SL310000 | Not used in any IBM-documented code pagโฆ |
| SL360000 | U+25AF โฏ WHITE VERTICAL RECTANGLE |
| SL370000 | U+25CA โ LOZENGE , U+25C6 โ BLACK DIAMOโฆ |
| SL380000 | U+2502 โ BOX DRAWINGS LIGHT VERTICAL ,โฆ |
| SL400000 | U+22C2 โ N-ARY INTERSECTION |
| SL410000 | U+22C3 โ N-ARY UNION |
| SL460000 | U+F88F in IBM's private use area schemeโฆ |
| SL510000 | U+22C0 โ N-ARY LOGICAL AND |
| SL580000 | U+F88E in IBM's private use area schemeโฆ |
| SL590000 | These arrows are SM300000, SM310000, SMโฆ |
| SL600000 | These arrows are SM300000, SM310000, SMโฆ |
| SL610000 | These arrows are SM300000, SM310000, SMโฆ |
| SL620000 | These arrows are SM300000, SM310000, SMโฆ |
| SL640000 | U+F889 in IBM's private use area schemeโฆ |
| SL650000 | U+002A * ASTERISK |
| SL690000 | U+2212 โ MINUS SIGN |
| SL700000 | U+F888 in IBM's private use area scheme. |
| SL710000 | U+03B1 ฮฑ GREEK SMALL LETTER ALPHA |
| SL720000 | U+03B5 ฮต GREEK SMALL LETTER EPSILON , Uโฆ |
| SL730000 | U+03B9 ฮน GREEK SMALL LETTER IOTA |
| SL740000 | U+03C1 ฯ GREEK SMALL LETTER RHO |
| SL750000 | U+03C9 ฯ GREEK SMALL LETTER OMEGA |
| SL830000 | Form with fullwidth attribute set (SL83โฆ |
EBCDIC code pages
Code page 293
Code page 293 (CCSID 293),cite-ref-22[20] called "APL (USA)", is an EBCDIC code page which includes APL symbols, in addition to preserving the basic Latin letters and Western Arabic numerals at their usual EBCDIC locations.cite-ref-cp293txt-19-3[17]cite-ref-tachyon293-20-2[18]
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x | NUL | SOH | STX | ETX | SEL | HT | RNL | DEL | GE | SPS | RPT | VT | FF |
| 1x | DLE | DC1 | DC2 | DC3 | RES/ ENP | NL | BS | POC | CAN | EM | UBS | CU1 | IFS |
| 2x | DS | SOS | FS | WUS | BYP/ INP | LF | ETB | ESC | SA | SFE | SM/ SW | CSP | MFA |
| 3x | | | SYN | IR | PP | TRN | NBS | EOT | SBS | IT | RFF | CU3 | DC4 |
| 4x | SP | ๐ดฬฒ | ๐ตฬฒ | ๐ถฬฒ | ๐ทฬฒ | ๐ธฬฒ | ๐นฬฒ | ๐บฬฒ | ๐ปฬฒ | ๐ผฬฒ | ยข | . | < |
| 5x | & | ๐ฝฬฒ | ๐พฬฒ | ๐ฟฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐
ฬฒ | ! | $ | โ/* |
| 6x | -/โ | / | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ยฆ | , | % |
| 7x | โ/โ/โ | โง/โ | ยจ | โป | โธ | โท | โข | โฃ | โจ | ` | :/โถ | # | @ |
| 8x | โผ/~ | a | b | c | d | e | f | g | h | i | โ | โ | โค |
| 9x | โ | j | k | l | m | n | o | p | q | r | โ | โ | |
| Ax | โพ | ~ | s | t | u | v | w | x | y | z | โฉ/โ | โช/โ | โฅ |
| Bx | โบ/ฮฑ | โ/ฮต/โ | โณ/ฮน | โด/ฯ | โต/ฯ | | ร | \/โ | รท | | โ | โ | โค |
| Cx | { | A | B | C | D | E | F | G | H | I | โฒ | โฑ | โท |
| Dx | } | J | K | L | M | N | O | P | Q | R | โถ | !/ว | โ |
| Ex | \ | โก | S | T | U | V | W | X | Y | Z | โฟ | โ | โต |
| Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | | โซ | โ |
| | D | E | F |
|---|---|---|---|
| 0x | CR | SO | SI |
| 1x | IGS | IRS | IUS / ITB |
| 2x | ENQ | ACK | BEL |
| 3x | NAK | | SUB |
| 4x | ( | + | / |
| 5x | ) | ; | ยฌ |
| 6x | _ | > | ? |
| 7x | ' | = | " |
| 8x | โ | โ | โ |
| 9x | โ | | โ |
| Ax | [ | โฅ | โ |
| Bx | ] | โ | โฃ/โ |
| Cx | โฝ | โ | โ |
| Dx | โ | โ | โ |
| Ex | โ | โน | โ |
| Fx | โ | โ | EO |
Differences from Code page 37
Code page 310
Code page 310 ("Graphic Escape APL/TN") includes a larger gamut of symbols, but does not itself include the basic Latin letters or the basic digits.cite-ref-ibm-24-0[22]cite-ref-tachyon310-4-20[4] It is used alongside Code page 37-2,cite-ref-ibm-2010-25-0[23] with the Code page 310 codes being prefixed by the Graphic Escape (EBCDIC 0x08)cite-ref-26[24] control character.cite-ref-x3270-6-21[6]cite-ref-ibm3174-27-0[25]
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x | | | | | | | | | | | | | | |
| 1x | | | | | | | | | | | | | | |
| 2x | | | | | | | | | | | | | | |
| 3x | | | | | | | | | | | | | | |
| 4x | SP | ๐ดฬฒ | ๐ตฬฒ | ๐ถฬฒ | ๐ทฬฒ | ๐ธฬฒ | ๐นฬฒ | ๐บฬฒ | ๐ปฬฒ | ๐ผฬฒ | | | | |
| 5x | | ๐ฝฬฒ | ๐พฬฒ | ๐ฟฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐
ฬฒ | | | | |
| 6x | | | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | | | | |
| 7x | โ/โ/โ | โง/โ | ยจ | โป | โธ | โท | โข | โฃ | โจ | | | | | |
| 8x | โผ/~ | โ | โ | โธ | โน | โ/โฅ | | | | | โ | โ | โค | โ |
| 9x | โ | โ | โ | โ | โ | โ/โ | | | | | โ | โ | โ/ยค | โ |
| Ax | ยฏ/โพ | ยฐ | โ | โ/โข | โ | | | | | | โฉ/โ | โช/โ | โฅ | [ |
| Bx | โบ/ฮฑ | โ/โ/ฮต | โณ/ฮน | โด/ฯ | โต/ฯ | | ร | โ/ \ | รท | | โ | โ | โค | ] |
| Cx | { | โฝ | โบ/+ | โ /โ | โ | โ | โ | โด | ยง | | โฒ | โฑ | โท | โฝ |
| Dx | } | โพ | โป/ - | โผ | โ | โ | โค | โฌ | ยถ | | โถ | ว/ ! | โ | โ |
| Ex | โก | โ | โ | โ | โค | โฅ | โช | โฌ | | | โฟ | โ | โต | โ |
| Fx | โฐ | ยน | ยฒ | ยณ | โด | โต | โถ | โท | โธ | โน | | โซ | โ | โ |
| | E | F |
|---|---|---|
| 8x | โ | โ |
| 9x | ยฑ | โ |
| Ax | โฅ | โ |
| Bx | โ | โฃ/โ |
| Cx | โ | โ |
| Dx | โ | โ |
| Ex | โน | โ |
| Fx | โ | |
Code page 351
Code page 351 ("GDDM Default (USA)")cite-ref-tachyon351-31-0[27] contains most of the characters of Code page 293 and Code page 310 (except โท, epsilon with underline) in addition to the letters and digits, by replacing several control characters with symbols.
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x | NUL | | | | { | HT | | | โ | | โน | | FF | CR |
| 1x | | | | | | NL | BS | โ | โ | โ | โ | โ | โ | |
| 2x | โฝ | โพ | โบ | โป | } | LF | โธ | โ | โ | โ | โธ | ยง | โผ | โ |
| 3x | โฐ | ยน | ยฒ | ยณ | โด | โต | โถ | โท | โธ | โน | ยถ | โฌ | | โ |
| 4x | SP | ๐ดฬฒ | ๐ตฬฒ | ๐ถฬฒ | ๐ทฬฒ | ๐ธฬฒ | ๐นฬฒ | ๐บฬฒ | ๐ปฬฒ | ๐ผฬฒ | ยข | . | < | ( |
| 5x | & | ๐ฝฬฒ | ๐พฬฒ | ๐ฟฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐
ฬฒ | ! | $ | * | ) |
| 6x | - | / | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | ยฆ | , | % | _ |
| 7x | โ | โง | ยจ | โ | โ | โ | โ | ยฐ | โจ | ` | : | # | @ | ' |
| 8x | โผ | a | b | c | d | e | f | g | h | i | โ | โ | โค | โ |
| 9x | โ | j | k | l | m | n | o | p | q | r | โ | โ | โ | โ |
| Ax | ยฏ | ~ | s | t | u | v | w | x | y | z | โฉ | โช | โฅ | [ |
| Bx | โบ | โ/โ | โณ | โด | โต | โ | ร | โ / \ | รท | โ | โ | โ | โค | ] |
| Cx | { | A | B | C | D | E | F | G | H | I | โฒ | โฑ | โท | โฝ |
| Dx | } | J | K | L | M | N | O | P | Q | R | โถ | ว/ ! | โ | โ |
| Ex | \ | โก | S | T | U | V | W | X | Y | Z | โฟ | โ | โต | โ |
| Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | โป | โซ | โ | โ |
| | E | F |
|---|---|---|
| 1x | โ | โ |
| 2x | โข | โฃ |
| 3x | โด | โค |
| 4x | + | / |
| 5x | ; | ยฌ |
| 6x | > | ? |
| 7x | = | " |
| 8x | โ | โ |
| 9x | ยฑ | โ |
| Ax | โฅ | โ |
| Bx | โ | โฃ |
| Cx | โ | โ |
| Dx | โ | โ |
| Ex | โน | โ |
| Fx | โ | |
7-bit modified ASCII
Code page 371 (IR-68)
Code page 371,cite-ref-32[28] registered for use with ISO/IEC 2022 as ISO-IR-68,cite-ref-ir68-33-0[29]cite-ref-consortiumir68-5-23[5] is a 7-bit heavily modified ASCII, designed by the APL Working Group of the Canadian Standards Association, intended for use with APL in an environment allowing overstriking of characters using the BS (backspace, 0x08) control code.cite-ref-ir68-33-1[29]cite-ref-consortiumir68-5-24[5]
8-bit modified and/or extended ASCII
Code page 907
Code page 907 is used by the IBM 3812, like code page 906.
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x | | โบ | โป | โฅ | โฆ | โฃ | โ | โข | โ | โ | โ | โ | โ | โช | โฌ |
| 1x | โบ | โ | โ | โผ | ยถ | ยง | โฌ | โจ | โ | โ | โ | โ | โ | โ | โฒ |
| 2x | SP | !/ว | " | # | $ | % | & | ' | ( | ) | โ/* | + | , | -/โ | . |
| 3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | :/โถ | ; | < | = | > |
| 4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N |
| 5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \/โ | ] | โง/โ |
| 6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n |
| 7x | p | q | r | s | t | u | v | w | x | y | z | { | โฃ/โ | } | โผ/~ |
| 8x | ๐ดฬฒ | ๐ตฬฒ | ๐ถฬฒ | ๐ทฬฒ | ๐ธฬฒ | ๐นฬฒ | ๐บฬฒ | ๐ปฬฒ | ๐ผฬฒ | ๐ฝฬฒ | ๐พฬฒ | ๐ฟฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ |
| 9x | โ | โ | โน | ๐ฬฒ | ๐
ฬฒ | ๐ฬฒ | ๐ฬฒ | ๐ฬฒ | โค | ๐ฬฒ | ๐ฬฒ | ยข | ๐ฬฒ | โฅ | โ |
| Ax | ๐ฬฒ | ๐ฬฒ | | | | | | | | โ | ยฌ | โ | โช/โ | | โ |
| Bx | โ | โ | โ | โ | โค | โท | โธ | โก | โต | โฃ | โ | โ | โ | โ | โป |
| Cx | โ | โด | โฌ | โ | โ | โผ | โท | | โ | โ | โฉ | โฆ | โ | โ | โฌ |
| Dx | โ | โ | โ | โ | โ | โ | | | | โ | โ | โ | โ | โ | โ |
| Ex | โบ/ฮฑ | ร | โ | โ | โ | โฒ | โด/ฯ | โฑ | โฝ | โ | โ | โจ | โณ/ฮน | โ | โ/ฮต/โ |
| Fx | โฟ | โ | โฅ | โค | โ | ร | รท | โ | โ | โต/ฯ | โซ | โ | โ | โพ | ยจ |
| | F |
|---|---|
| 0x | โผ |
| 1x | โผ |
| 2x | / |
| 3x | ? |
| 4x | O |
| 5x | _ |
| 6x | o |
| 7x | โ |
| 8x | ๐ฬฒ |
| 9x | โถ |
| Ax | โ |
| Bx | โ |
| Dx | โ |
| Ex | โฉ/โ |
| Fx | NBSP |
Differences from
code page 437
Code page 909
Code page 909 is another encoding for APL, differing from code page 907 in not including the underlined characters, assigning different codes to the APL characters which fall in the 0xB0โDF range, and replacing some of the C0 replacement graphics from code page 437 with alternative encodings for certain APL symbols.
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x | | โท | โธ | โฅ | โฆ | โฃ | โ | โข | โ | โ | โ | โก | โ | โช |
| 1x | โบ | โ | โต | โท | ยถ | ยง | โ | โป | โ | โ | โ | โ | โ | โ |
| 2x | SP | !/ว | " | # | $ | % | & | ' | ( | ) | โ/* | + | , | -/โ |
| 3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | :/โถ | ; | < | = |
| 4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M |
| 5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \/โ | ] |
| 6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m |
| 7x | p | q | r | s | t | u | v | w | x | y | z | { | โฃ/โ | } |
| 8x | ร | รผ | รฉ | รข | รค | ร | รฅ | รง | รช | รซ | รจ | รฏ | รฎ | รฌ |
| 9x | โ | โ | โน | รด | รถ | รฒ | รป | รน | โค | ร | ร | | ยฃ | โฅ |
| Ax | รก | รญ | รณ | รบ | รฑ | ร | ยช | ยบ | ยฟ | โ | ยฌ | โ | โช/โ | ยก |
| Bx | โ | โ | โ | โ | โค | โ | โ | โ | โ | โฃ | โ | โ | โ | โ |
| Cx | โ | โด | โฌ | โ | โ | โผ | โ | โ | โ | โ | โฉ | โฆ | โ | โ |
| Dx | โธ | โท | โต | โท | โ | โป | โข | โฃ | โ/โ/โ | โ | โ | โ | โ | |
| Ex | โบ/ฮฑ | ร | โ | โ | โ | โฒ | โด/ฯ | โฑ | โฝ | โ | โ | โจ | โณ/ฮน | โ |
| Fx | โฟ | โ | โฅ | โค | โ | ร | รท | โ | โ | โต/ฯ | โซ | โ | โ | โพ |
| | E | F |
|---|---|---|
| 0x | โฌ | โ |
| 1x | โ | โ |
| 2x | . | / |
| 3x | > | ? |
| 4x | N | O |
| 5x | โง/โ | _ |
| 6x | n | o |
| 7x | โผ/~ | โ |
| 8x | ร | ร
|
| 9x | โ | โถ |
| Ax | โ | โ |
| Bx | โ | โ |
| Cx | โฌ | โก |
| Dx | | โ |
| Ex | โ/ฮต/โ | โฉ/โ |
| Fx | ยจ | NBSP |
Differences from
code page 437
Code page 910
Code page 910 is similar to code page 909, but with fewer duplicate horizontal arrows, using the same C0 graphics as code page 437, and including some additional characters.
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x | | โบ | โป | โฅ | โฆ | โฃ | โ | โข | โ | โ | โ | โ | โ | โช |
| 1x | โบ | โ | โ | โผ | ยถ | ยง | โฌ | โจ | โ | โ | โ | โ | โ | โ |
| 2x | SP | !/ว | " | # | $ | % | & | ' | ( | ) | โ/* | + | , | -/โ |
| 3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | :/โถ | ; | < | = |
| 4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M |
| 5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \/โ | ] |
| 6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m |
| 7x | p | q | r | s | t | u | v | w | x | y | z | { | โฃ/โ | } |
| 8x | ร | รผ | รฉ | รข | รค | ร | รฅ | รง | รช | รซ | รจ | รฏ | รฎ | รฌ |
| 9x | โ | โ | โน | รด | รถ | รฒ | รป | รน | โค | ร | ร | รธ | ยฃ | โฅ |
| Ax | รก | รญ | รณ | รบ | รฑ | ร | ยช | ยบ | ยฟ | โ | ยฌ | ยฝ | โช/โ | ยก |
| Bx | โ | โ | โ | โ | โค | โ | โ | โ | โ | โฃ | โ | โ | โ | โ |
| Cx | โ | โด | โฌ | โ | โ | โผ | โ | โ | โ | โ | โฉ | โฆ | โ | โ |
| Dx | โธ | โท | โต | โท | โ | โป | โข | โฃ | โ/โ/โ | โ | โ | โ | โ | ยฆ |
| Ex | โบ/ฮฑ | ร | โ | โ | โ | โฒ | โด/ฯ | โฑ | โฝ | โ | โ | โจ | โณ/ฮน | โ |
| Fx | โฟ | โ | โฅ | โค | โ | ร | รท | โ | โ | โต/ฯ | โซ | โ | โ | โพ |
| | E | F |
|---|---|---|
| 0x | โฌ | โผ |
| 1x | โฒ | โผ |
| 2x | . | / |
| 3x | > | ? |
| 4x | N | O |
| 5x | โง/โ | _ |
| 6x | n | o |
| 7x | โผ/~ | โ |
| 8x | ร | ร
|
| 9x | โง | โถ |
| Ax | โ | โ |
| Bx | โ | โ |
| Cx | โฌ | โก |
| Dx | ร | โ |
| Ex | โ/ฮต/โ | โฉ/โ |
| Fx | ยจ | NBSP |
Differences from
code page 437
Unicode
Most APL symbols are present in Unicode, in the Miscellaneous Technical range,cite-ref-34[30] although some APL products may not yet feature Unicode, and some APL symbols may be unused or unavailable in a given vendor's implementation.
As of 2010, Unicode allows APL to be stored in text files, published in print and on the web, and shared through email and instant messaging. Entering APL characters still requires the use of either a specific input method editor or keyboard mapping, or of a specific touch interface. APL keyboard mappings are available for free for the most common operating systems, or can be obtained by adding the Unicode APL symbols to existing keyboard map.
Underscored alphabetic characters
Missing from Unicode are the traditional underscored alphabetic characters included in some of the APL code pages; their usage has been eliminated or deprecated in most APL implementations. These were produced on APL printing terminals by over-striking a straight capital letter with an underscore character. Some tables show them simulated with underlined and italic markup, not listing Unicode mappings.cite-ref-tachyon310-4-23[4]
IBM assigns them GCGIDs as "LA480000" (which they name "A Line Below Capital/A Underscore (APL)"), "LB480000" ("B Line Below Capital/B Underscore (APL)") and so forth, under the "L" series used for Latin letters.cite-ref-cs963-1-2[1] The use of an even number (48) rather than an odd number (47) is due to being uppercase: compare the use of SD110000 for a lone acute accent ยด, LA110000 for the lowercase รก, and LA120000 for the uppercase ร.cite-ref-cp1252-35-0[31] They are included in IBM's private use area scheme, encoded in reverseโalphabetical order in the odd-numbered code points from U+F8BF to U+F8F1.cite-ref-unicodenam-12-6[12]
Homologous uses of 47 include the "SD" (diacritic) series GCGID SD470000 for "Line Below/Discontinuous Underscore"cite-ref-cs969-36-0[32]โi.e. macron below, distinct from the ASCII underscore which is SP090000 ("Underline/Continuous Underscore")cite-ref-cp1252-35-1[31]โand the "A" (Arabic letter) series GCGID AD470009 for the แธฤl,cite-ref-cp1256pdf-37-0[33] for example. Unicode's Latin Extended Additional block includes the following capital "Line Below" characters with the macron below diacritic, for Semitic transcription (it includes a pre-composed แบ only in lowercase):
โข U+1E06 แธ LATIN CAPITAL LETTER B WITH LINE BELOW
โข U+1E0E แธ LATIN CAPITAL LETTER D WITH LINE BELOW
โข U+1E34 แธด LATIN CAPITAL LETTER K WITH LINE BELOW
โข U+1E3A แธบ LATIN CAPITAL LETTER L WITH LINE BELOW
โข U+1E48 แน LATIN CAPITAL LETTER N WITH LINE BELOW
โข U+1E5E แน LATIN CAPITAL LETTER R WITH LINE BELOW
โข U+1E6E แนฎ LATIN CAPITAL LETTER T WITH LINE BELOW
โข U+1E94 แบ LATIN CAPITAL LETTER Z WITH LINE BELOW
However, this does not cover the entire ISO basic Latin alphabet, and IBM's reference glyphs for the APL characters show them both underlined and oblique,cite-ref-cs963pdf-2-2[2] and tables simulating them with markup may follow suit.cite-ref-tachyon310-4-24[4] Unicode's Mathematical Alphanumeric Symbols block includes italic characters for use in notations where they are contrastive with non-italic characters. Unicode also includes combining forms of the macron below and underscore in the Combining Diacritical Marks block; the characters above canonically decompose with the former:
โข U+0331 โฬฑ COMBINING MACRON BELOW
โข U+0332 โฬฒ COMBINING LOW LINE
Keyboard layout
Note the mnemonics associating an APL character with a letter: ? (question mark) on Q, โ (power) on P, ฯ (rho) on R, โฅ (base value) on B, โค (eNcode) on N, โฃ (modulus) on M and so on. This makes it easier for an English-language speaker to type APL on a non-APL keyboard, providing one has visual feedback on one's screen. Also, decals have been produced for attachment to standard keyboards, either on the front of the keys or on the top of them.
Later IBM terminals, notably the IBM 3270 display stations, had an alternate keyboard arrangement which is the basis for some of the modern APL keyboard layouts in use today.
Further APL characters were available by overstriking one character with another. For example, the log symbol (โ) was formed by overstriking โง Shift+P with โง Shift+O. This extended the graphic abilities of the earlier teleprinters, but made it more complex to correct errors and edit program lines.
New overstrikes were introduced by vendors as they produced versions of APL tailored to specific hardware, system features, file systems, and so on. Further, printing terminals and early APL cathode-ray terminals were able to display arbitrary overstrikes, but as personal computers rapidly replaced terminals as a data-entry device, APL character support became provided as an APL Character Generator ROM or a soft character set rendered by the display device. With the advent of the modern PC, APL characters were defined in specific fonts, eliminating the distinction between overstruck characters and standard characters.
Finally, the symbols were ratified in Unicode and given specific code points, with unambiguous interpretations, independently of the graphic font.
See also
Footnotes
cite-note-tacks-131. There are two naming conventions (which way around "up" and "down" are, and which way around "left" and "right" are) for tack characters, the "London" and "Bosworth" conventions.cite-ref-dickey-14-0[13] Which convention is used differs between IBM and Unicode. Naming also differs between composite Unicode characters intended solely for APL (which match IBM naming and use the Bosworth convention) versus plain tacks also intended for other applications (which use the London convention).cite-ref-dickey-14-1[13]cite-ref-utn27-15-0[14] APL specifications subsequently adopted the London convention.cite-ref-utn27-15-1[14] The documentation for Dyalog APL notes that the Unicode naming for composite tacks (and thus the IBM naming for all tacks), which follows the lesser-used "Bosworth" convention,cite-ref-dickey-14-2[13] runs contrary to convention in the APL community.cite-ref-dyalogsheet-7-1[7]
cite-note-172. Unicode 1.0 had the "APL out" character at U+2301, but it was removed in Unicode 1.0.1.cite-ref-16[15]
cite-note-sharp-304. Sharp extension.cite-ref-x3270-6-24[6]
References
cite-note-tachyon310-44. citereftachyon-software2007Tachyon Software (2007-07-31). Code Page 00310: 3270 APL Graphic Escape.
cite-note-consortiumir68-55. citerefcowan2004Cowan, John (2004-06-29). "ISO-IR-68 to Unicode". Unicode.org. Unicode, Inc. Retrieved 19 June 2017.
cite-note-x3270-66. "x3270 Character Set". x3270 Documentation. Archived from the original on 2018-11-10.
cite-note-dyalogsheet-77. "Dyalog Nomenclature: Functions and Operators" (PDF). Dyalog - Documentation Centre. Dyalog APL.
cite-note-cpgid437-85. "Personal Computer". IBM. CPGID 00437.
cite-note-cpgid907-96. citerefibmIBM. Code Page 00907 (PDF). Archived from the original (PDF) on 2017-08-03.
cite-note-cpgid909-107. citerefibmIBM. Code Page 00909 (PDF). Archived from the original (PDF) on 2015-07-08.
cite-note-cpgid910-118. citerefibmIBM. Code Page 00910 (PDF). Archived from the original (PDF) on 2015-07-08.
cite-note-unicodenam-1212. citerefibm1997IBM (1997). unicode.nam: Allow the Unicode characters to be specified using either the IBM or PostScript like names. (Included with citerefborgendaleBorgendale, Ken, OS/2 Codepage and Keyboard Display Tools)
cite-note-dickey-1413. โ citerefdickeyDickey, Leroy J. "The Naming of Tack Symbols". University of Waterloo.
cite-note-utn27-1514. โ citereffreytagmcgowanwhistler2021Freytag, Asmus; McGowan, Rick; Whistler, Ken (2021-06-14). "Known Anomalies in Unicode Character Names". Unicode Consortium. UTN #27.
cite-note-1615. โ "Unicode 1.0.1 Addendum" (PDF). The Unicode Standard. 1992-11-03. Retrieved 2024-09-21.
cite-note-mainframew-1816. "EBCDIC and ASCII Tables". Archived from the original on 2016-08-27.
cite-note-cp293txt-1917. citerefibm1996IBM (1996) [1984]. "Code Page (CPGID) 00293: APL (USA)". REGISTRY, Graphic Character Sets and Code Pages.
cite-note-tachyon293-2018. citereftachyon-software2007Tachyon Software (2007-07-31). Code Page 00293: EBCDIC APL.
cite-note-219. "IBM Simplified Chinese Graphic Character Set for Extended UNIX Code (EUC)" (PDF). IBM. 1994. C-H 3-3220-132 1994-06.
cite-note-2220. โ "CCSID 293 information document". Archived from the original on 2016-03-27.
cite-note-2310. Code Page CPGID 00293 (pdf) (PDF), IBM
cite-note-ibm-2010-2523. โ xlate - Transliterate Contents of Records, IBM Corporation, 2010 [1986], archived from the original on 2019-06-16, retrieved 2016-10-18
cite-note-ibmpdf-2826. Code Page CPGID 00310 (pdf) (PDF), IBM
cite-note-tachyon351-3127. โ citereftachyon-software2007Tachyon Software (2007-07-31). Code Page 00351: GDDM Default (USA).
cite-note-ir68-3329. โ citerefiso-ir-681983Standards Council of Canada (1983-06-01). APL Character Set for Workspace Interchange (PDF). ITSCJ/IPSJ. ISO-IR-68.
cite-note-3430. โ "The Unicode Standard 5.1 Code Charts: Technical Symbols U+2300-U+23FF" (PDF). Unicode Standard 5.1. Unicode Consortium. Archived (PDF) from the original on 2 October 2008. Retrieved October 12, 2008.
cite-note-3811. A more up-to-date keyboard diagram, applicable for APL2 and other modern implementations, is available at WikensOnline Union APL large keyboard layout for Windows Archived March 10, 2012, at the Wayback Machine, actual photo + diagram here Archived April 3, 2015, at the Wayback Machine and NARS2000 APL keyboard layout here.
External links
โข IBM code page 293 a.k.a. the APL code page on mainframe computers
โข IBM code page 907 a.k.a. the APL ASCII code page